package com.itheima.set_demo;
// 自定义类
public class Student {
    private String name;
    private int age;

    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }


    // 比较两个对象的内容是否相等!
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Student student = (Student) o;

        if (age != student.age) return false;
        return name != null ? name.equals(student.name) : student.name == null;
    }

//    作用 : 降低equals方法的执行 ,此从而提高效率
//    @Override
//    public int hashCode() {
//        /*
//            s1 = 7 + 3 = 10
//            s2 = 3 + 7 = 10
//         */
//        return name.hashCode()+ age;
//    }


    //    作用 : 降低equals方法的执行 ,此从而提高效率
    @Override
    public int hashCode() {
        /*
            s1 = 220
            s2 = 100
            31 : 1,质数   2,不大不小  3, 2的5次方-1
         */
        int result = name != null ? name.hashCode() : 0;
        result = 31 * result + age;
        return result;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
